/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import Entidades.MaquinaEnt;

import Utilidades.Conexion;
import Utilidades.Constantes;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author usuario
 */
public class MaquinaDAO {
    
    Conexion con;
    Connection connect;
    
       
    
    public int ingresarMaquina(MaquinaEnt maquina) throws SQLException{
    
        int ingresar = 0;
        con = new Conexion();
        connect = con.getCon();
 
        try {
            
            PreparedStatement st = connect.prepareStatement(Constantes.INSERT_MAQUINA);           
            
            st.setString(1, maquina.getTipoMaquina());
            st.setInt(2, maquina.getUtilidad());
            st.setString(3, maquina.getNombre());
            st.setInt(4, maquina.getTiempoMantenimiento());
            st.setInt(5, maquina.getFallas());
            st.setString(6, maquina.getEstado());
            st.setString(7, maquina.getMaterial());
            st.setInt(8, maquina.getPrecio());
            
            st.executeUpdate();
            ingresar = 1;
            connect.close();
        } catch (SQLException ex) {
            Logger.getLogger(MaquinaDAO.class.getName()).log(Level.SEVERE, null, ex);
            connect.close();
        }
        
        return ingresar;
    }
    
        
     public List<MaquinaEnt> busquedaMaquinas(MaquinaEnt maquina) throws SQLException{
    
         List<MaquinaEnt>  lstMaquina = new ArrayList<MaquinaEnt>();
         con = new Conexion();
         connect = con.getCon();
 
        try {
            
            PreparedStatement st = connect.prepareStatement(Constantes.CONSULTAR_MAQUINA_POR_NOMBRE);
            
            st.setString(1, maquina.getNombre());
            
            ResultSet rs = st.executeQuery();
            
            if(rs != null){
                while (rs.next()) {
                    
                    maquina = new MaquinaEnt();

                    maquina.setEstado(rs.getString("ESTADO"));
                    maquina.setFallas(rs.getInt("FALLAS"));
                    maquina.setIdMaquina(rs.getInt("IDMAQUINA"));
                    maquina.setMaterial(rs.getString("MATERIAL"));
                    maquina.setNombre(rs.getString("NOMBRE"));
                    maquina.setPrecio(rs.getInt("PRECIO"));
                    maquina.setTiempoMantenimiento(rs.getInt("TIEMPOMANTENIMIENTO"));
                    maquina.setTipoMaquina(rs.getString("TIPOMAQUINA"));
                    maquina.setUtilidad(rs.getInt("UTILIDAD"));
                    
                    lstMaquina.add(maquina);
                }
            }
            connect.close();
        } catch (SQLException ex) {
            Logger.getLogger(MaquinaDAO.class.getName()).log(Level.SEVERE, null, ex);
            connect.close();
        }
        
        return lstMaquina;
    }
     
   
   public int actualizarMaquina(MaquinaEnt maquina) throws SQLException{
    
        int ingresar = 0;
        con = new Conexion();
        connect = con.getCon();
 
        try {
            
            PreparedStatement st = connect.prepareStatement(Constantes.ACTUALIZAR_MAQUINAS);
           
            st.setString(1, maquina.getTipoMaquina());
            st.setInt(2, maquina.getUtilidad());
            st.setString(3, maquina.getNombre());
            st.setInt(4, maquina.getTiempoMantenimiento());
            st.setInt(5, maquina.getFallas());
            st.setString(6, maquina.getEstado());
            st.setString(7, maquina.getMaterial());
            st.setInt(8, maquina.getPrecio());
            
            st.executeUpdate();
            ingresar = 1;
            connect.close();
       
        } catch (SQLException ex) {
            Logger.getLogger(MaquinaDAO.class.getName()).log(Level.SEVERE, null, ex);
            connect.close();
        }
        
        return ingresar;
    }
    
      
    
}
